.TH "MP4" "3" "Version 0.9" "Cisco Systems Inc." "MP4 File Format Library"
.SH "NAME"
.LP 
\fBMP4CopySample\fR \- Make a copy of a specified sample
.SH "SYNTAX"
.LP 
#include <mp4.h>
.LP 
MP4TrackId \fBMP4CopySample\fR(
.br 
	MP4FileHandle \fIsrcFile\fP,
.br 
	MP4TrackId \fIsrcTrackId\fP,
.br 
	MP4SampleId \fIsrcSampleId\fP,
.br 
	MP4FileHandle \fIdstFile\fP = MP4_INVALID_FILE_HANDLE,
.br 
	MP4TrackId \fIdstTrackId\fP = MP4_INVALID_TRACK_ID,
.br 
	MP4Duration \fIdstSampleDuration\fP = MP4_INVALID_DURATION
.br 
)
.SH "ARGUMENTS"
.LP 
.TP 
\fIsrcFile\fP
Specifies the mp4 file of the source of the operation.
.TP 
\fIsrcTrackId\fP
Specifies the track of the source sample.
.TP 
\fIsrcSampleId\fP
Specifies the sample to be copied.
.TP 
\fIdstFile\fP
Specifies the mp4 file of the new, copied sample. If the value is MP4_INVALID_FILE_HANDLE, the new sample is created in the same file as the source sample. 
.TP 
\fIdstTrackId\fP
Specifies the track of the new sample. If the value is MP4_INVALID_TRACK_ID, the new sample is created in the same track as the source sample.
.TP 
\fIdstSampleDuration\fP
Specifies the duration in the track time scale of the new sample. If the value is MP4_INVALID_DURATION, then the duration of the source sample is used.
.SH "RETURN VALUES"
.LP 
Upon success, the sample id of the new sample. Upon an error, MP4_INVALID_SAMPLE_ID.

.SH "DESCRIPTION"
.LP 
\fBMP4CopySample\fR creates a new sample based on an existing sample. Note that another copy of the media sample data is created in the file using this function. I.e. this call is equivalent to MP4ReadSample() followed by MP4WriteSample().
.LP 
Note that is the responsibility of the caller to ensure that the copied media sample makes sense in the destination track. E.g. copying a video sample to an audio track is unlikely to result in anything good happening, even copying a sample from video track to another requires that the tracks use the same encoding and that issues such as image size are addressed.

.SH "SEE ALSO"
.LP 
MP4(3) MP4ReadSample(3) MP4WriteSample(3)
